package com.demo.scenic.service;

import com.demo.scenic.common.BaseResponse;
import com.demo.scenic.domain.*;
import com.demo.scenic.shiro.AccountProfile;

import java.util.List;

public interface BusinessService {

    // 获取景区所有信息,一个人仅允许管理一个景点
    BaseResponse getScenic(AccountProfile accountProfile);

    // 获取景区基称列表
    BaseResponse getScenicNames();

    // 新增景区信息
    BaseResponse addScenicBase(ScenicBase scenicBase);
    //修改景区基本信息
    BaseResponse updateScenicBase(ScenicBase scenicBase);
    //删除景区基本信息
    BaseResponse deleteScenicBase(Integer id);

    // 绑定商家和景区
    BaseResponse bindScenic(AccountProfile accountProfile, Integer scenicId);


    //新增景区图片
    BaseResponse addScenicImage(ScenicPhoto scenicPhoto);
    //修改景区图片
    BaseResponse updateScenicImage(ScenicPhoto scenicPhoto);
    //删除景区图片
    BaseResponse deleteScenicImage(Integer id);
    // 根据景区id获取景区宣传图
    List<ScenicPhoto> getScenicImage(Integer scenicId);



    //新增景区其他信息
    BaseResponse addScenicOther(ScenicOther scenicOther);
    //修改景区其他信息
    BaseResponse updateScenicOther(ScenicOther scenicOther);
    //删除景区其他信息
    BaseResponse deleteScenicOther(Integer id);

    // 根据景区id获取景区其他信息
    ScenicOther getScenicOther(Integer scenicId);




    // 根据景区id获取景区时间信息
    TimeConfig getScenicTime(Integer scenicId);


    // 新增票务类型
    BaseResponse addTicketType(TicketType ticketType);

    // 修改票务类型
    BaseResponse updateTicketType(TicketType ticketType);

    // 更改票务状态
    BaseResponse updateTicketStatus(Integer id);

    // 删除票务类型
    BaseResponse deleteTicketType(Integer id);

    // 根据景区id获取票务类型
    BaseResponse getTicketType(Integer scenicId);



    // 设置可预约时间段
    BaseResponse addTimeConfig(TimeConfig timeConfig);

    // 修改可预约时间段
    BaseResponse updateTimeConfig(TimeConfig timeConfig);



    // 新增景区活动
    BaseResponse addScenicActivity(ScenicActivity scenicActivity);

    // 更新景区活动
    BaseResponse updateScenicActivity(ScenicActivity scenicActivity);

    // 删除景区活动
    BaseResponse deleteScenicActivity(Integer id);

    // 更改是否启用状态
    BaseResponse updateScenicActivityStatus(Integer id);

    // 根据景区id获取景区活动
    List<ScenicActivity> getScenicActivity(Integer scenicId);


    // 根据景区id获取可预约时间段信息
    List<TimePeriod> getTimePeriod(Integer scenicId);


    // 根据景区id获取景区预约记录
    BaseResponse getScenicOrder(Integer scenicId);

    // 新增景区介绍图
    BaseResponse addScenicImg(ScenicImg scenicImg);

    // 修改景区介绍图
    BaseResponse updateScenicImg(ScenicImg scenicImg);

    // 删除景区介绍图
    BaseResponse deleteScenicImg(Integer id);

    // 根据景区id查询景区介绍图
    List<ScenicImg> getScenicImg(Integer scenicId);


}
